package com.yuyou.fn.educational.service;

import com.github.wens.mybatisplus.plugins.Page;
import com.yuyou.fn.educational.entity.ApplyClass;
import com.github.wens.framework.service.ISuperService;
import com.yuyou.fn.educational.vo.FullClassSaveVo;
import com.yuyou.fn.educational.vo.ApplyClassDetailVo;
import com.yuyou.fn.educational.vo.ApplyClassQueryVo;
import com.yuyou.fn.educational.vo.ApplyClassSaveOrUpdateVo;
import com.yuyou.fn.platform.permission.DataPermission;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

/**
 *
 * ApplyClass 表数据服务层接口
 *
 */
public interface IApplyClassService extends ISuperService<ApplyClass,Long> {

    void saveOrUpdateApplyClass(ApplyClassSaveOrUpdateVo applyClassSaveOrUpdateVo);

    Page<ApplyClassDetailVo> findApplyClassDetailPage(DataPermission dataPermission,ApplyClassQueryVo applyClassQueryVo, int pageNo, int pageSize);

    ApplyClassDetailVo findApplyClassDetail(long applyClassId);

    SXSSFWorkbook exportApplyClassDetail(DataPermission dataPermission, ApplyClassQueryVo queryVo);

    void auditFailureApplyClass(long applyClassId,String auditReason);

    void auditSuccessApplyClass(long applyClassId,String auditReason);

    boolean changeApplyClassStatus(long applyClassId,String auditReason,int auditStatus);

    void createClassByApply(long applyClassId,FullClassSaveVo fullClassSaveVo);

    boolean fillClassId(long applyClassId,long classId);
}